#include <iostream>

// 加号运算符重载
class Person
{
public:
    // 1.成员函数方式实现加号运算符重载
    // Person operator+(Person &p)
    // {
    //     Person temp;
    //     temp.m_A = this->m_A + p.m_A;
    //     temp.m_B = this->m_B + p.m_B;
    //     return temp;
    // }
    int m_A;
    int m_B;
};

// 2.全局函数方式实现加号运算符重载
Person operator+(Person &p1, Person &p2)
{
    Person temp;
    temp.m_A = p1.m_A + p2.m_A;
    temp.m_B = p1.m_B + p2.m_B;
    return temp;
}

void test01()
{
    Person p1;
    p1.m_A = 10;
    p1.m_B = 10;
    Person p2;
    p2.m_A = 20;
    p2.m_B = 20;
    Person p3 = p1 + p2;
    std::cout << "p3.m_A = " << p3.m_A << std::endl;
    std::cout << "p3.m_B = " << p3.m_B << std::endl;
}

int main()
{
    test01();
    return 0;
}